1. Technical Field
The present invention relates to method and system for enhancing bus performance, and particularly, to system performance optimization using the processing capabilities of an operating system (OS), as well as internal capabilities of adapters.
2. Description of Related Art
Currently, network computing is in wide use. The old form of a single, stand-alone computer system is no longer the only form of a computer system. Consequently, connectivity is one of the key system performance measures. This is especially true for server class systems. Network computing necessarily leads to a large number of communications in both inter-network and intra-network context.
Furthermore, a large number of mass storage adapters, which handle large amounts of rapid data flow, are also the result of network computing. These large numbers of mass storage adapters are not only dissimilar in their external protocol and unique design-based operating characteristics, but they also link a given system/server to dissimilar remote entities. In other words, the adapters have different types of hardware, and run on different applications.
In addition, the matter is made more complicated by the introduction of non-trivial bus hierarchies such as Peripheral Component Interconnect (PCI), PCI-X, which is a PCI bus with even more parameters, or InfiniBand. InfiniBand is an association-developed specification for computer input/output architecture by InfiniBand Trade Association (IBTA). In other words, the number of hardware parameters and input/output (I/O) slots per system increase constantly with each new model being introduced.
As can be appreciated, network speed or bandwidth increase demands for greater speed across network connections. It becomes desirable to have a method and system for enhancing bus performance of a computer that is at the other end of the network connections. By way of example, a server with an internal bus coupled to a network needs to have a means to accommodate a great amount of data flow from a network. Therefore, a better means to accommodate the data flow, after the data flows into the adapter, is significant. Currently, one problem commonly encountered is when the adapter needs more bandwidth in order to be more efficient but is unable to get the additional bandwidth. This may be because a related OS of a computer system cannot meet the requirement in that it either does not know more bandwidth is needed, the adapter is not equipped to convey the need, or the OS is not directly involved in meeting the need.
Known methods of adjusting bandwidth, such as manually flipping a dual in-line package (DIP) switch, or pre-defined bandwidth assignment at an application or software level, are in use. However, the known methods are limited by the fact that they are all restricted to methods that are internal to the adapter, or at most a monitor coupled to a local bus with the local bus coupled to the adapter. Thus, it would be beneficial to have a method and system that use an operating system (OS) independent of the adapter, as well as use internal capabilities of adapters for system performance optimization.